;;;; srfi-9.test --- Test suite for Guile's SRFI-9 functions. -*- scheme -*-
;;;; Martin Grabmueller, 2001-05-10
;;;;
;;;; Copyright (C) 2001 Free Software Foundation, Inc.
;;;; 
;;;; This program is free software; you can redistribute it and/or modify
;;;; it under the terms of the GNU General Public License as published by
;;;; the Free Software Foundation; either version 2, or (at your option)
;;;; any later version.
;;;; 
;;;; This program is distributed in the hope that it will be useful,
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;;; GNU General Public License for more details.
;;;; 
;;;; You should have received a copy of the GNU General Public License
;;;; along with this software; see the file COPYING.  If not, write to
;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
;;;; Boston, MA 02111-1307 USA

(use-modules (srfi srfi-9))

(define-record-type :foo (make-foo x) foo? 
  (x get-x) (y get-y set-y!))

(define f (make-foo 1))
(set-y! f 2)

(with-test-prefix "record procedures"

  (pass-if "predicate"
     (foo? f))

  (pass-if "accessor 1"
     (= 1 (get-x f)))

  (pass-if "accessor 2"
     (= 2 (get-y f)))

  (pass-if "modifier"
     (set-y! f #t)
     (eq? #t (get-y f))))
